#ifndef MAINCONTROLLER_H
#define MAINCONTROLLER_H

#include "Controller.h"
#include "ConsoleController.h"
#include "GameOptionsController.h"
#include "GameController.h"
#include "Error.h"
#include "MainWindowView.h"
#include "AboutProgramView.h"
#include "MenuView.h"

class MainController : public QObject, public Controller
{
    Q_OBJECT
public:
    explicit MainController(QObject *parent = 0);
    virtual ~MainController();

    void start();
signals:

public slots:
    void loadFromFile();
    void openConsole();
    void showGameOptions();
    void showAboutProgramInfo();
    void closeApplication();

private:
    //Subkontrolery
    ConsoleController * consoleController;
    GameController * gameController;
    GameOptionsController * gameOptionsController;

    //Widoki
    MainWindowView * mainWindowView;
    MenuView * menuView;
    AboutProgramView * aboutProgramView;
};

#endif // MAINCONTROLLER_H
